Ext.ns("App");
Ext.ns("Ext.app");
App.init = function() {
	if (Ext.isIE) {
		document.body.style.marginLeft=(document.body.offsetWidth-1024)/2;
	}
	Ext.QuickTips.init();// 这句为表单验证必需的代码
	Ext.BLANK_IMAGE_URL = __ctxPath
			+ '/commons/scripts/ext/resources/images/default/s.gif';
	var frameContent = null;
	var cookies = Ext.util.Cookies;

	var pWidth = cookies.get('pWidth');
	var pHeight = cookies.get('pHeight');
	var certainSize = /[0-9_]/i.test(pWidth) && /[0-9_]/i.test(pHeight);

	var pWidth = certainSize ? pWidth : Ext.lib.Dom.getViewWidth(true);
	var pHeight = certainSize ? pHeight : Ext.lib.Dom.getViewHeight(true);

	var viewW = pWidth - 60;
	var treePanelW = 180;
	var frmPanelW = viewW - treePanelW - 7;
	var frmContentW = viewW - treePanelW - 8;
	//
	// Ext.get("banner").setWidth(viewW);
	// Ext.get("content").setWidth(viewW);

	var viewH = pHeight - 50;
	var frmPanelH = viewH - 62;
	var frmContentH = viewH - 62;
	var frmPanel = new Ext.Panel({
				autoScroll : false,
				width : 874,
				height : 678,
				// style : 'border-left:solid 1px #99bbe8;',
				id : 'frmPanel',
				// margin : 0,
				region : 'center',
				layout : 'fit',
				border : false,
				frame : false,
				html : '<img height="678" width="874" src="' + __ctxPath
						+ '/commons/images/transferwelcome.jpg"></img>',
				listeners : {
					bodyresize : function() {
					}
				}

			});
	var pos = '当前位置：';
	var treeLoader = new Ext.tree.TreeLoader({
		// dataUrl : 'menu/getMenu?nodeId=NF05',
		 dataUrl : 'commons/page/resourceTree.jsp',
		//dataUrl : 'user/findChildrenNodes',
	});
	
	var treeRootNode = new Ext.tree.AsyncTreeNode({
		id : 'rt',
		text : '数据交换平台监控系统'
	});
	treeLoader.on("beforeload", function(treeLoader, node) {
		treeLoader.baseParams.id = node.attributes.id;
    }, treeLoader);
	
	var treePanel = new Ext.tree.TreePanel({
		id : 'treepanel',
		baseCls : 'mainLeftTree',
		region : 'west',
		bodyStyle : 'padding-top:20px;',
		width : 155,
		height : 682,
		header : false,
		useArrows : true,
		autoScroll : false,
		monitorResize : true,
		collapsible : true,
		animCollapse : false,
		collapseMode : 'mini',
		lines : false,
		border : false,
		singleExpand : false,
		animate : false,
		trackMouseOver : true,
		loader : treeLoader,
		root : treeRootNode,
		listeners : {
			'click' : function(node, event, root) {

				if (node.leaf) {
					// getFrameContent().dom.src =
					// node.attributes.value
					frmPanel.load({
								url : __ctxPath + '/'
										+ node.attributes.url,
								callback : function() {
									// Ext.getCmp('userpos').setText(pos);
									// pos = '当前位置：';
								},
								scripts : true
							})
					var temp = node.text;
					/*
					 * while (node.parentNode.text) { temp =
					 * node.parentNode.text + ' > ' + temp; node =
					 * node.parentNode; }
					 */
					pos += temp;
					Ext.getCmp('userpos').setText(pos);
					pos = '当前位置：';
				} else {
					node.collapseChildNodes();
					node.expand();
				}
				
			},
			'resize' : function(sender, adjWidth, adjHeight, rawWidth,
					rawHeight) {
				if (!getFrameContent()) {
					return;
				}
				frmPanel.setWidth(viewW - 7 - treePanel.getWidth());
				getFrameContent().setWidth(viewW - 8
						- treePanel.getWidth());
			},
			'load' : function(node, event, root) {
				var len = node.childNodes.length;
				
				for(var i=0;i<len;i+=1){
					node.childNodes[i].on('expand',function(node1,e){
						
						var task = {run:function(){
							Ext.Ajax.request( {
								method : 'post',
								url : "user/nodeStatus?id="+node1.attributes.id,
								success : function(resp, opts) {
									var result = Ext.util.JSON.decode(resp.responseText);
									if (result.success == true) {
										if (node1.hasChildNodes()) {
											if(node1.attributes.id!="NF"){
												node1.getUI().getIconEl().src = __ctxPath + '/commons/images/drop-yes.gif';
											}
											node1.eachChild(function(leafNode) {
												
												Ext.Ajax.request( {
													method : 'post',
													url : "user/nodeStatus?id="+leafNode.attributes.id,
													success : function(resp1, opts1) {
														var result1 = Ext.util.JSON.decode(resp1.responseText);
														if (result1.success == true) {
															leafNode.getUI().getIconEl().src = __ctxPath + '/commons/images/drop-yes.gif';
														} else {
															leafNode.getUI().getIconEl().src = __ctxPath + '/commons/images/drop-no.gif';
														}
													}
												});
												
											}, this);
										}
									} else {
										if(node1.attributes.id!="NF"){
											node1.getUI().getIconEl().src = __ctxPath + '/commons/images/drop-no.gif';
										}
									}
								}
							});},
							interval: 1500
						};
						Ext.TaskMgr.start(task);
					});
				}
			}
		}

	});
	
	treePanel.expand();
	treePanel.fireEvent('click',treePanel.getRootNode());// 触发click事件
	var task1 = {
	    run: function(){
			treePanel.getRootNode().reload();
	    },
	    interval: 10000
	}
	Ext.TaskMgr.start(task1);
	
	new Ext.Panel({
				renderTo : 'content',
				cls : 'mainFooter',
				style : 'border:solid 1px #99bbe8;',
				border : false,
				// width : 964,
				width : 1024,
				height : 710,
				margins : 0,
				layout : 'border',
				items : [treePanel, frmPanel],
				tbar : new Ext.Toolbar({
							// cls : 'mainTopMenu',
							height : 25,
							items : [
									// {
									// text : '待办事项',
									// icon : '${base}/main/images/note.gif'
									// }, '-', {
									// text : '待办事项',
									// icon : '${base}/main/images/note.gif'
									// }, '-',
									{
								text : '当前位置：首页',
								// style : 'margin-left:157px',
								xtype : 'tbtext',
								id : 'userpos'
							}, '->', '您好！', {
								text : userName,
								handler : showUserInfo
							}, '-', {
								text : '退出系统',
								id : 'quit',
								icon : 'commons/images/logout.gif',
								handler : logout
							}, {
								xtype : 'tbspacer',
								width : 3,
								height : 25
							}]
						}),
				bbar : new Ext.Toolbar({
							// cls : 'mainFooter',
							items : [
									// {
									// text : '调整分辨率',
									// iconCls : 'ico_resize',
									// menu : {
									// items : [
									//
									// {
									// text : '自定义',
									// group : 'size',
									// checked : certainSize,
									// menu : {
									// plain : true,
									// items : [
									// {
									// xtype : 'buttongroup',
									// title : '分辨率',
									// autoWidth : true,
									// columns : 2,
									// items : [{
									// xtype : 'label',
									// text : '宽度：'
									// }, {
									// id : 'customWidth',
									// xtype : 'numberfield',
									// value : pWidth,
									// width : 50
									// }, {
									// xtype : 'label',
									// text : '高度：'
									// }, {
									// id : 'customHeight',
									// xtype : 'numberfield',
									// value : pHeight,
									// width : 50
									// }, {
									// colspan : 2,
									// xtype : 'button',
									// scale : 'small',
									// width : '100%',
									// text : '确定',
									// handler : function() {
									// var obj = {
									// pWidth : Ext
									// .getCmp('customWidth')
									// .getValue(),
									// pHeight : Ext
									// .getCmp('customHeight')
									// .getValue()
									// };
									// changeSize(obj);
									// }
									// }
									// ]
									// }
									// ]
									// }
									// }, {
									// text : '1920*1080',
									// group : 'size',
									// pWidth : 1920,
									// pHeight : 1080,
									// handler : changeSize,
									// scope : this
									// }, {
									// text : '1680*1050',
									// group : 'size',
									// pWidth : 1680,
									// pHeight : 1050,
									// handler : changeSize,
									// scope : this
									// }, {
									// text : '1200*900',
									// group : 'size',
									// pWidth : 1200,
									// pHeight : 900,
									// handler : changeSize,
									// scope : this
									// }, {
									// text : '1024*768',
									// group : 'size',
									// pWidth : 1024,
									// pHeight : 768,
									// handler : changeSize,
									// scope : this
									// }, {
									// text : '自适应',
									// group : 'size',
									// checked : !certainSize,
									// pWidth : 'auto',
									// handler : changeSize,
									// scope : this
									// }]
									// }
									// },  
									'->',
									'东方口岸科技有限公司版权所有&nbsp;&nbsp;©&nbsp;&nbsp;2000-2012',
									{
										xtype : 'tbspacer',
										width : 10,
										height : 25
									}]
						})
			});
	Ext.Ajax.on('requestcomplete', function(conn, response, options) {
				var status = response.getResponseHeader('sessionstatus');
				if (typeof(status) != 'undefined') {
					Ext.MessageBox.alert('提示','用户超时,请重新登录！',function(btn){
						if(btn=='ok'){
							window.location.href = __ctxPath+'/login.jsp';
						}
					});
					
				}
		}, this);
	function changeSize(sender) {
		var expires = new Date('1/10/2999 03:05:01 PM GMT-0600');
		cookies.set("pWidth", sender.pWidth, expires);
		cookies.set("pHeight", sender.pHeight, expires);
		cookies.set("pWidth", sender.pWidth, expires);
		cookies.set("pHeight", sender.pHeight, expires);
		window.location = __ctxPath + '/main.jsp';
	}
	function getFrameContent() {
		if (frameContent == null) {
			frameContent = Ext
					.get(Ext.DomQuery.selectNode("iframe#frmContent"));
		}
		return frameContent;
	}
	function logout() {
		if (confirm('是否确定退出系统？')) {
			location.href = __ctxPath + "/security/logout";
		}
	}
	function showUserInfo() {
		userInfoForm.getForm().load({
			url : 'security/loadUserInfo',
			success : function(form, action) {
				Ext.getCmp('customsCodeCombo')
						.setValue(action.result.data.customsCode);
			},
			failure : function(form, action) {
				Ext.Msg.alert('系统异常', "载入用户信息失败。");
			}
		});
		userInfoWin.show();
	}

};

Ext.onReady(App.init);